package com.wmh.baseservice.robot.tools;

import com.alibaba.fastjson2.JSONArray;
import com.wmh.baseservice.common.utils.SnowFlakeIdUtil;
import com.wmh.baseservice.robot.entity.TaskDataFormUi;

import java.awt.*;
import java.awt.datatransfer.StringSelection;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.ArrayList;

/**
 * @author 青石
 */
public class TemporaryCommand {
    public static void main(String[] args) throws NoSuchAlgorithmException {
        System.out.println(SnowFlakeIdUtil.generate());
    }

    public static void scTgjcFrom(){
        ArrayList<TaskDataFormUi.LvMapping> lvMappingArrayList = new ArrayList<>();
        lvMappingArrayList.add(new TaskDataFormUi.LvMapping().setLabel("周期一").setValue(0));
        lvMappingArrayList.add(new TaskDataFormUi.LvMapping().setLabel("周期二").setValue(1));
        lvMappingArrayList.add(new TaskDataFormUi.LvMapping().setLabel("周期三").setValue(2));

        JSONArray array = new JSONArray();
        array.add(new TaskDataFormUi().setLabel("后台账号").setField("account").setUiControl("Input"));
        array.add(new TaskDataFormUi().setLabel("后台密码").setField("password").setUiControl("Input"));
        array.add(new TaskDataFormUi().setLabel("任务信息接收邮箱").setField("email").setUiControl("Input"));
        array.add(new TaskDataFormUi().setLabel("是否排除开启智能计划的商品").setField("isExcluded").setUiControl("Switch").setDefaultValue(true));
        array.add(new TaskDataFormUi().setLabel("指定计划-名称(多个计划 ',' 号分割,不填写则捕获所有计划)").setField("planNameList").setUiControl("Input").setNullable(true).setType("textarea"));
        array.add(new TaskDataFormUi().setLabel("推广计划-点击转化率低于基准值是否邮件通知").setField("isPlanCcrLowSendEmail").setUiControl("Switch").setDefaultValue(true));
        array.add(new TaskDataFormUi().setLabel("关键词-降价百分比").setField("gjcCutPriceP").setUiControl("Input"));
        array.add(new TaskDataFormUi().setLabel("关键词-提价百分比").setField("gjcRaisePriceP").setUiControl("Input"));
        array.add(new TaskDataFormUi().setLabel("关键词-是否忽略点击量低的关键词").setField("gjcIsIgnoreClickCountLow").setUiControl("Switch").setDefaultValue(false));
        array.add(new TaskDataFormUi().setLabel("关键词-展现量低于基准值是否提价").setField("gjcIsQop").setUiControl("Switch").setDefaultValue(false));
        array.add(new TaskDataFormUi().setLabel("关键词-低花费低roi是否提价").setField("gjcIsLowCostLowRoiRaisePrice").setUiControl("Switch").setDefaultValue(false));
        array.add(new TaskDataFormUi().setLabel("关键词-低花费低roi参考周期").setField("gjcLowCostLowRoiRaisePriceBySelectZq").setUiControl("Radio").setSelectList(lvMappingArrayList));
        array.add(new TaskDataFormUi().setLabel("关键词-高花费低roi是否降价").setField("gjcIsTallCostLowRoiCutPrice").setUiControl("Switch").setDefaultValue(false));
        array.add(new TaskDataFormUi().setLabel("关键词-高花费低roi参考周期").setField("gjcTallCostLowRoiRaisePriceBySelectZq").setUiControl("Radio").setSelectList(lvMappingArrayList));
        array.add(new TaskDataFormUi().setLabel("关键词-多少以上认定为高花费(元)").setField("gjcHowManyCostIsTall").setUiControl("Input"));
        array.add(new TaskDataFormUi().setLabel("关键词-多少以下认定为低花费(元)").setField("gjcHowManyCostIsLow").setUiControl("Input"));
        array.add(new TaskDataFormUi().setLabel("关键词-多少以下认定为低roi").setField("gjcHowManyRoiIsLow").setUiControl("Input"));
        array.add(new TaskDataFormUi().setLabel("关键词-多少以下认定为低点击量").setField("gjcHowManyClickCountIsLow").setUiControl("Input"));
        array.add(new TaskDataFormUi().setLabel("关键词-选择低点击量忽略优化的参考数据周期").setField("gjcLowClickCountBySelectZq")
                .setUiControl("Radio").setSelectList(lvMappingArrayList));
        array.add(new TaskDataFormUi().setLabel("关键词-选择根据展现量调整价格所参考的数据周期").setField("gjcAdjustPriceBySelectZq")
                .setUiControl("Radio").setSelectList(lvMappingArrayList));

        array.add(new TaskDataFormUi().setLabel("关键词-低展现量提价百分比").setField("gjcLowQopCutPriceP").setUiControl("Input"));
        array.add(new TaskDataFormUi().setLabel("关键词-低展现量超基准点击率转化率提价百分比").setField("gjcLowQopSuperDatumCutPriceP").setUiControl("Input"));
        array.add(new TaskDataFormUi().setLabel("关键词-可接受最高移动出价").setField("gjcAptMaxAppBid").setUiControl("Input"));
        array.add(new TaskDataFormUi().setLabel("关键词-可接受最低移动出价").setField("gjcAptMinAppBid").setUiControl("Input"));

        array.add(new TaskDataFormUi().setLabel("忽略精选人群-名称(多个以 ',' 号分割,可填)")
                .setField("ignoreJxrqNameS").setUiControl("Input").setNullable(true).setType("textarea"));

        array.add(new TaskDataFormUi().setLabel("精选人群-高花费低roi是否暂停").setField("jxrqIsTallCostLowRoiStop").setUiControl("Switch").setDefaultValue(false));
        array.add(new TaskDataFormUi().setLabel("精选人群-高花费低roi参考周期")
                .setField("jxrqTallCostLowRoiBySelectZq")
                .setUiControl("Radio")
                .setSelectList(lvMappingArrayList));
        array.add(new TaskDataFormUi().setLabel("精选人群-高点击转化率低花费是否提价").setField("jxrqIsTallCcrLowCostRaisePrice").setUiControl("Switch").setDefaultValue(false));
        array.add(new TaskDataFormUi().setLabel("精选人群-高点击转化率低花费参考周期")
                .setField("jxrqTallCcrLowCostBySelectZq")
                .setUiControl("Radio")
                .setSelectList(lvMappingArrayList));
        array.add(new TaskDataFormUi().setLabel("精选人群-多少以上认定为高花费(元)").setField("jxrqHowManyCostIsTall").setUiControl("Input"));
        array.add(new TaskDataFormUi().setLabel("精选人群-多少以下认定为低花费(元)").setField("jxrqHowManyCostIsLow").setUiControl("Input"));
        array.add(new TaskDataFormUi().setLabel("精选人群-多少以上认定为高点击转化率").setField("jxrqHowManyCcrISTall").setUiControl("Input"));
        array.add(new TaskDataFormUi().setLabel("精选人群-多少以下认定为低roi").setField("jxrqHowManyRoiIsLow").setUiControl("Input"));
        array.add(new TaskDataFormUi().setLabel("精选人群-降低溢价百分比").setField("jxrqCutPercentage").setUiControl("Input"));
        array.add(new TaskDataFormUi().setLabel("精选人群-提价溢价百分比").setField("jxrqRaisePercentage").setUiControl("Input"));
        array.add(new TaskDataFormUi().setLabel("精选人群-可接受最高溢价").setField("jxrqAptMaxPremium").setUiControl("Input"));
        array.add(new TaskDataFormUi().setLabel("精选人群-可接受最低溢价").setField("jxrqAptMinPremium").setUiControl("Input"));


        array.add(new TaskDataFormUi().setLabel("周期1-时间范围").setField("Cycle1-TimeScope").setUiControl("DatePicker").setType("datetimerange").setValueFormat("yyyy-MM-dd"));
        array.add(new TaskDataFormUi().setLabel("周期1-推广计划-点击转化率基准值(百分比)").setField("Cycle1-PlanBaseCcr").setUiControl("Input"));
        array.add(new TaskDataFormUi().setLabel("周期1-关键词-展现量基准值").setField("Cycle1-gjcBaseQop").setUiControl("Input"));
        array.add(new TaskDataFormUi().setLabel("周期1-关键词-可接受最低ROI").setField("Cycle1-gjcAptMinROI").setUiControl("Input"));
        array.add(new TaskDataFormUi().setLabel("周期1-关键词-收藏＋购物车可接受最高单价").setField("Cycle1-gjcSCPlusGWCAptUnitPrice").setUiControl("Input"));
        array.add(new TaskDataFormUi().setLabel("周期1-关键词-点击转化率基准值").setField("Cycle1-gjcBaseCTR").setUiControl("Input"));



        array.add(new TaskDataFormUi().setLabel("周期2-时间范围").setField("Cycle2-TimeScope").setUiControl("DatePicker").setType("datetimerange").setValueFormat("yyyy-MM-dd"));
        array.add(new TaskDataFormUi().setLabel("周期2-推广计划-点击转化率基准值(百分比)").setField("Cycle2-PlanBaseCcr").setUiControl("Input"));
        array.add(new TaskDataFormUi().setLabel("周期2-关键词-展现量基准值").setField("Cycle2-gjcBaseQop").setUiControl("Input"));
        array.add(new TaskDataFormUi().setLabel("周期2-关键词-可接受最低ROI").setField("Cycle2-gjcAptMinROI").setUiControl("Input"));
        array.add(new TaskDataFormUi().setLabel("周期2-关键词-收藏＋购物车可接受最高单价").setField("Cycle2-gjcSCPlusGWCAptUnitPrice").setUiControl("Input"));
        array.add(new TaskDataFormUi().setLabel("周期2-关键词-点击转化率基准值").setField("Cycle2-gjcBaseCTR").setUiControl("Input"));


        array.add(new TaskDataFormUi().setLabel("周期3-时间范围").setField("Cycle3-TimeScope").setUiControl("DatePicker").setType("datetimerange").setValueFormat("yyyy-MM-dd"));
        array.add(new TaskDataFormUi().setLabel("周期3-推广计划-点击转化率基准值(百分比)").setField("Cycle3-PlanBaseCcr").setUiControl("Input"));
        array.add(new TaskDataFormUi().setLabel("周期3-关键词-展现量基准值").setField("Cycle3-gjcBaseQop").setUiControl("Input"));
        array.add(new TaskDataFormUi().setLabel("周期3-关键词-可接受最低ROI").setField("Cycle3-gjcAptMinROI").setUiControl("Input"));
        array.add(new TaskDataFormUi().setLabel("周期3-关键词-收藏＋购物车可接受最高单价").setField("Cycle3-gjcSCPlusGWCAptUnitPrice").setUiControl("Input"));
        array.add(new TaskDataFormUi().setLabel("周期3-关键词-点击转化率基准值").setField("Cycle3-gjcBaseCTR").setUiControl("Input"));


        System.out.println(array);
        // 直接复制到剪切板
        Toolkit.getDefaultToolkit().getSystemClipboard().setContents(new StringSelection(array.toString()),null);
    }

    public static String transform(String str) throws NoSuchAlgorithmException {
        return hashMD5(str).substring(8, 24);
    }

    public static String hashMD5(String str) throws NoSuchAlgorithmException {
        MessageDigest digest = MessageDigest.getInstance("MD5");
        byte[] hashed = digest.digest(str.getBytes());
        StringBuilder sb = new StringBuilder();
        byte[] var4 = hashed;
        int var5 = hashed.length;

        for(int var6 = 0; var6 < var5; ++var6) {
            byte b = var4[var6];
            int len = b & 255;
            if (len < 16) {
                sb.append("0");
            }

            sb.append(Integer.toHexString(len));
        }

        return sb.toString();
    }
}
